Repository navigation
fix: stop telling Linux and Windows they are a Mac - #48
Merged
Merged
Conversation
The window hardcoded the macOS keychain, Finder, and Always Allow. Those sentences now follow the computer the build runs on: the system keyring on Linux, Credential Manager on Windows.
…s in chatd too Windows handed a call link to `cmd /C start`, which split it at the first `&`: a Teams or Telegram link opened cut short and cmd ran the rest as a command. It goes to ShellExecuteW now, whose answer still tells "nothing opens this" from "could not open". Copy diagnostics asks for the Windows version without flashing a console. Linux reads os-release as a shell would, from /usr/lib when /etc has none, and says Linux when it names nothing. Windows no longer tells of a Credential Manager prompt that never comes. The lines still written for a Mac follow the system too. The Reduce Motion and App Shortcuts captions are macOS only; the badge and menu bar icon answers name the taskbar and the tray; Hide tinyclient and Hide Others are listed and bound on macOS only, since Hide Others panicked on Windows. chatd names the keychain, Credential Manager or the system keyring, and Telegram's device list no longer calls every computer a Mac. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
itz4blitz
force-pushed
the
fix/linux-platform-copy
branch
from
October 20, 2026 13:38
3103272 to
9d8f73b
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
The Linux build of 0.2.5 shows Mac copy: "Your sign-in is kept in the macOS keychain on this Mac.", "Show in Finder", and "Choose Always Allow". Those sentences were compiled in for every system.
hostnow names the computer this build runs on.PRETTY_NAMEfrom os-release instead of asw_versline that never appears.xdg-open, the same as opening a file already does.Review fixes (second commit)
cmd /C start "" <url>split a link at its first&(Teamsmsteams:/l/channel/…?groupId=…&tenantId=…, Telegramtg://privatepost?channel=…&post=…), so the app got a cut-short link and cmd rantenantId=…as a command. The link now goes toShellExecuteW(windows-sys gainsWin32_UI_ShellandWin32_UI_WindowsAndMessaging; nothing new in Cargo.lock). Its return still separates "Nothing on this PC opens …" (no association, or the handler's program is gone) from "This PC could not open the link." gpui's ownopen_urlcalls ShellExecuteW too but returns nothing, so it could not report either.sw_vers,verandpsrun throughprotocol::launch::no_console.os_versionis now one function per OS rather thanreturns in cfg blocks./usr/lib/os-release, unquotes single and double quotes, unescapes\",\\,\$and\`, and says "Linux" whenPRETTY_NAMEis missing or empty. The parser is a pure function with fixture tests. The Linux test that read the real file can no longer panic in a container without one.defaults.unimplemented!()for Hide Others on Windows, so Ctrl+Alt+H used to crash the Windows build.session::STOREnames the keychain, Credential Manager, or the system keyring. The words for no store, waiting, refused, Telegram's "couldn't save the sign-in", the Signal vault key and the sign-out read error all use it. The Windows waiting line is "Still reading your sign-in from Credential Manager."host::OS_NAMEis removed.Test plan
Run on macOS (arm64) against this branch, rebased on main at b9f227b:
cargo test -p tinyclient host: 2 passedcargo test -p tinyclient: 14 passedcargo test -p tinyclient --features gui: 351 passed, 1 ignored. Covers the new shortcut-list test and the host fixtures.cargo test -p chatd --lib: 137 passed. Covers the neweach_system_names_its_own_store.cargo test -p chatd --test polish: 12 passed. The waiting detail is checked againstsession::STORE_WAITING, which is pinned per OS in the unit test.cargo test -p chatd: every target passed (292 tests)cargo clippy -p tinyclient --features gui --all-targets: no warnings in touched lines. The ones left in touched files,menubar.rslet _ = cx.update(…)andapp/mod.rslet _ = cx.update(…), are on main too.cargo clippy -p chatd --all-targets -- -A clippy::while_immutable_condition: no warnings in touched lines. The deny-level lint atdiscord/gateway.rs:488is on main and stops plain clippy.cargo check -p tinyclient --tests --target x86_64-pc-windows-msvcand--target x86_64-unknown-linux-gnu: cleansystem_openbody type-checks and is clippy-clean in a scratch crate against windows-sys 0.61.2 forx86_64-pc-windows-msvc. The full gui build for Windows needsllvm-rc, which this Mac doesn't have, so CI's Windows package job compiles it.🤖 Generated with Claude Code